﻿import com.dinmax.flash.draw.utilities.*

class Fade {
	private var _interval:Number;
	private var listener:Object;
	
	function Fade(movie:MovieClip, velocidad:Number, fadeIn:Boolean) {
		var nVelocidad = Math.floor(velocidad, 10);
		if(nVelocidad==undefined) {nVelocidad=10;}
		if(nVelocidad>24) { nVelocidad=24;}
		if(fadeIn || fadeIn==undefined) {
			movie._alpha = 1;
			_interval = setInterval(fades, 25-(nVelocidad), movie, 1, this);
		}
		else {
			movie._alpha = 99;
			_interval = setInterval(fades, 25-(nVelocidad), movie, -1, this);
		}
	}
	public function terminar(movie:MovieClip) {
		clearInterval(_interval);
		if(listener!=undefined){ listener.terminar(movie);}
	}
	
	public function addListener(list:Object){
		listener=list;
	}
	public function removeListener(){
		listener=undefined;
	}
	
	private function fades(movie:MovieClip, tipo:Number, fade:Fade):Void {
		if(movie._alpha>0 && movie._alpha<100) {
			movie._alpha += tipo;
			updateAfterEvent();
		}
		if(movie._alpha<=0 || movie._alpha>=100) {
			fade.terminar(movie);
		}
	}
}